package com.jtpay.payresulthelper.http.dataStructure;

import com.google.gson.Gson;

/**
 * Created by Administrator on 2018/1/16.
 */

public class BasicResponse<T> {
    private boolean Flag;
    private String Msg;

    private T Data;
    /**
     * register
     * <p>
     * HandlerId : 20180915164919477137
     * SystemCode : JFT3
     * RegisterCode : 40838E5BDB1E8A22DB3A3EE6BFB1BCD4
     * MerchantAccountId : 20180915164754477082
     * MerchantId : 20180912113159465455
     * MerchantNo : 80888133
     * AccountCode : 001
     * SystemId : 20171115103000000002
     */

    private String HandlerId;
    private String SystemCode;
    private String RegisterCode;
    private String MerchantAccountId;
    private String MerchantId;
    private String MerchantNo;
    private String AccountCode;
    private String SystemId;


    /**
     * authorize
     * <p>
     * HandlerId
     * SchemaId
     * UpdateCode
     * LongConnectionUrl
     */

    private String LongConnectionUrl;

    /**
     * Code
     * * 0完成
     * * 1未知错误
     * * 2超时
     * * 3缺少参数
     * * 4验签失败
     * * 5类型不符
     * TaskType
     * * 0	错误类型，不做操作
     * * 1	补单任务
     * * 2	批量补单任务
     * * 3	备注补单
     * * 4	官方流水号补单
     * * 5	时间范围补单
     * * 50	变更抓取模式
     * * 80	变更打点时间间隔
     */
    private int TaskType;
    private String BeginTime;
    private String EndTime;
    private String Reason;//备注
    private String SupplierOrderId;//官方流水号
    private int Interval;//打点时间间隔
    /**
     * 0	错误类型，不做操作
     * 1	普通模式，有备注非浮动金额抓单
     * 2	浮动模式抓单
     */
    private int GrabOrderMode;//需要变更的目标抓取模式

    public boolean isFlag() {
        return Flag;
    }

    public void setFlag(boolean flag) {
        Flag = flag;
    }

    public String getMsg() {
        return Msg;
    }

    public void setMsg(String msg) {
        this.Msg = msg;
    }

    public T getData() {
        return Data;
    }

    public void setData(T data) {
        this.Data = data;
    }

    @Override
    public String toString() {
        return new Gson().toJson(this);
    }

    public String getHandlerId() {
        return HandlerId;
    }

    public void setHandlerId(String HandlerId) {
        this.HandlerId = HandlerId;
    }

    public String getSystemCode() {
        return SystemCode;
    }

    public void setSystemCode(String SystemCode) {
        this.SystemCode = SystemCode;
    }

    public String getRegisterCode() {
        return RegisterCode;
    }

    public void setRegisterCode(String RegisterCode) {
        this.RegisterCode = RegisterCode;
    }

    public String getMerchantAccountId() {
        return MerchantAccountId;
    }

    public void setMerchantAccountId(String MerchantAccountId) {
        this.MerchantAccountId = MerchantAccountId;
    }

    public String getMerchantId() {
        return MerchantId;
    }

    public void setMerchantId(String MerchantId) {
        this.MerchantId = MerchantId;
    }

    public String getMerchantNo() {
        return MerchantNo;
    }

    public void setMerchantNo(String MerchantNo) {
        this.MerchantNo = MerchantNo;
    }

    public String getAccountCode() {
        return AccountCode;
    }

    public void setAccountCode(String AccountCode) {
        this.AccountCode = AccountCode;
    }

    public String getSystemId() {
        return SystemId;
    }

    public void setSystemId(String SystemId) {
        this.SystemId = SystemId;
    }

    public String getLongConnectionUrl() {
        return LongConnectionUrl;
    }

    public void setLongConnectionUrl(String longConnectionUrl) {
        LongConnectionUrl = longConnectionUrl;
    }

    public int getTaskType() {
        return TaskType;
    }

    public void setTaskType(int taskType) {
        TaskType = taskType;
    }

    public String getBeginTime() {
        return BeginTime;
    }

    public void setBeginTime(String beginTime) {
        BeginTime = beginTime;
    }

    public String getEndTime() {
        return EndTime;
    }

    public void setEndTime(String endTime) {
        EndTime = endTime;
    }

    public String getReason() {
        return Reason;
    }

    public void setReason(String reason) {
        Reason = reason;
    }

    public String getSupplierOrderId() {
        return SupplierOrderId;
    }

    public void setSupplierOrderId(String supplierOrderId) {
        SupplierOrderId = supplierOrderId;
    }

    public int getInterval() {
        return Interval;
    }

    public void setInterval(int interval) {
        Interval = interval;
    }

    public int getGrabOrderMode() {
        return GrabOrderMode;
    }

    public void setGrabOrderMode(int grabOrderMode) {
        GrabOrderMode = grabOrderMode;
    }
}
